package com.example.clt03;

import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.ValueCallback;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
    private WebView myWeb;
    public long timer;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // APP开启内嵌网页，使用webview   ----- start
        myWeb = (WebView) findViewById(R.id.myWeb);
        WebSettings webSet = myWeb.getSettings();
        webSet.setJavaScriptEnabled(true);
        myWeb.setWebViewClient(new WebViewClient());
        myWeb.loadUrl("http://192.168.199.108:8080");
        // APP开启内嵌网页，使用webview   ----- end
    }

    //重写安卓物理返回键的方法
    public boolean onKeyDown(int keyCode, KeyEvent event){
        System.out.println(keyCode);
        System.out.println(KeyEvent.KEYCODE_BACK);
        if(keyCode == KeyEvent.KEYCODE_BACK){
            // 这里是在网页中注入returnBackEvent()函数，挂载在window里
            myWeb.evaluateJavascript("javascript:window.returnBackEvent()", new ValueCallback<String>() {
                @Override
                public void onReceiveValue(String value) {
                    System.out.println(value);
                    if("true".equals(value)){
                        if(System.currentTimeMillis() - timer > 2000){
                            Toast.makeText(MainActivity.this, "再按一次退出APP", Toast.LENGTH_SHORT).show();
                            timer = System.currentTimeMillis();
                        }else{
                            MainActivity.this.finish();
                            System.exit(0);
                        }
                    }
                }
            });
        }
        return true;
    }
}

//1.复杂以上代码之后，看manifests/AndroidManifest.xml是否开启网络权限
//2.res/layout是否使用webView布局
//3.res/values/strings.xml是对应APP的名字
//4.res/mipmap是APP的小图标（图片+背景色，设计师只要设计透明的背景图即可）
//5.如果需要更换APP的小图标，在Android Studio鼠标右键项目名，New -> Image Asset -> source Asset然后选择对于的图片，最下面那个是大小的缩放，背景颜色在source Asset里面的选项（Background）
//6.修改APP的名称，就在res/values/strings.xml